package com.chen.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/a")
public class ServletA extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("Servlet A 执行了");
        /*响应重定向的两种路径写法
         * 1.相对路径 (特点：不以 / 开头)
         *       在当前资源所在位置拼接上重定向返回给前端的相对路径
         *          比如：http://localhost:8080/web04/a
         *          资源所在的位置：http://localhost:8080/web04/
         *          响应的相对路径 : b
         *          最终：http://localhost:8080/web04/b
         * 2.绝对路径 (特点：以 / 开头)
         *      在基准路径的后面拼接上响应的绝对路径
         *      基准路径：http://ip:port
         *      响应返回的绝对路径：/web04/b
         *      最终：http://ip:port/web04/b
         *      // 如何：编写绝对路径：程序上下文路径+@WebServlet中设置的value值
         * */
//        resp.sendRedirect("b");
        // req.getContextPath() 的作用：获取程序的上下文路径
//        System.out.println(req.getContextPath());
//        resp.sendRedirect(req.getContextPath() + "/b");


        /*
         * 请求转发
         *      相对路径（同响应重定向一致）
         *      绝对路径
         *             直接写@WebServlet注解中定义的value值即可
         * */
        // 请求转发
        req.getRequestDispatcher("/b").forward(req, resp);

    }
}
